/**
 *  The provider parser. It's meant to point to the base Solvers, and be the entry point / centralized
 *  access to parse the query expression into driver-specific query logic
 */
package time.providers.base.compiler;
import haxe.macro.Expr;
import time.compiler.query.Data;
import time.compiler.query.Solver;
import time.Errors;
import time.providers.base.api.BaseApi;

@:abstract class Generator 
{
	private var solvers:Array<Solver>;
	
	private function new()
	{
		solvers = cast [new ToManyApi()];
	}
	
	public function parse(query:QueryExpr, sc:SolverContainer) : Expr
	{
		throw NotImplemented;
		return null;
	}
	
	public function register(c:SolverContainer) : Void
	{
		for (solver in solvers)
			solver.register(c);
	}
	
	
}